package com.hlkj.pay.app.merchant.ext.impl.wxpay.dto;
/*
 * Hlpay-Plus aggregate payment system.
 * Copyright (c) 2024-2025 Hlpay Team Copyright has the right of final interpretation.
 */

import lombok.Data;

/**
 * @author HlpayTeam
 * @date 2024/12/11 13:43
 */
@Data
public class WxNotifyResp {

    private String sp_appid;
    //【服务商商户号】服务商下单时传入的服务商商户号sp_mchid
    private String sp_mchid;
    //【服务商APPID】服务商下单时传入的服务商sp_appid
    private String sub_appid;
    //【子商户号（也叫特约商户号）】服务商下单时传入的子商户号
    private String sub_mchid;
    //商户订单号】 服务商下单时传入的服务商系统内部订单号
    private String out_trade_no;
    //【微信支付订单号】 微信支付侧订单的唯一标识
    private String transaction_id;

    /**
     * 【交易类型】 返回当前订单的交易类型，枚举值
     * JSAPI：公众号支付、小程序支付
     * NATIVE：Native支付
     * APP：APP支付
     * MICROPAY：付款码支付
     * MWEB：H5支付
     * FACEPAY：刷脸支付
     */
    private String trade_type;

    /**
     * 【交易状态】 返回订单当前交易状态。详细业务流转状态处理请参考开发指引-订单状态流转图。枚举值：
     * SUCCESS：支付成功
     * REFUND：转入退款
     * NOTPAY：未支付
     * CLOSED：已关闭
     * REVOKED：已撤销（仅付款码支付会返回）
     * USERPAYING：用户支付中（仅付款码支付会返回）
     * PAYERROR：支付失败（仅付款码支付会返回）
     */
    private String trade_state;
    //【交易状态描述】 对交易状态的详细说明
    private String trade_state_desc;
    //【银行类型】 用户支付方式，订单支付成功后返回
    private String bank_type;
    //【商户数据包】服务商下单时传入的自定义数据包
    private String attach;
    //用户完成订单支付的时间。该参数在订单支付成功后返回
    private String success_time;
    //【订单金额】 订单金额信息
    private Amount amount;
    //【场景信息】 下单时传入的支付场景描述，若下单传入该参数，则原样返回；若下单未传该参数，则不会返回
    private SceneInfo scene_info;
    //【支付者信息】 支付者信息
    private Payer payer;

    @Data
    public class Payer{
        private String sp_openid;
        private String sub_openid;
    }

    @Data
    public class Amount{
        private Integer total;
        private Integer payer_total;
        private String currency;
        private String payer_currency;
    }

    @Data
    public class SceneInfo{
        private String device_id;
    }


}
